// 基于 fread fwrite 实现文件的拷贝

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char* argv[])
{
    if(argc < 3)
    {
        perror("参数不足，需要三个参数: copy f1.c f2.c\n");
        exit(1);
    }

    // 因为要实现拷贝所以，原文件 和 新文件（ w 没有会自动创建）都要打开
    // 原文件
    FILE* fp_in;
    // 新文件
    FILE* fp_out;
    // 缓冲区
    char buf[1024*8];
    memset(buf, 0, sizeof(buf));
    // 每一次实际读取的数据
    int size;
    
    fp_in = fopen(argv[1], "r");
    fp_out = fopen(argv[2], "w");
    // 文件打开是否成功检验省去

    //返回写入单位的个数
    while((size = fread(buf, 1, sizeof(buf)-1, fp_in)) != 0)
    {
        fwrite(buf, 1, size, fp_out);
    }

    fclose(fp_in);
    fclose(fp_out);
    return 0;
}